package org.acm.seguin.uml.jpg; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import java.io.File; import javax.swing.JFileChooser; import org.acm.seguin.io.ExtensionFileFilter; import org.acm.seguin.uml.UMLPackage; /** * Object that handles a mouse event on the save operation. * *@author Chris Seguin */ public class SaveAdapter implements ActionListener { private UMLPackage diagram; private static File directory = null; /** * Constructor for the SaveAdapter object * *@param packageDiagram Description of Parameter */ public SaveAdapter(UMLPackage packageDiagram) { diagram = packageDiagram; } /** * Performs the action * *@param evt Description of Parameter */ public void actionPerformed(ActionEvent evt) { String filename = getFilename(); if (filename == null) { return; } (new Save(filename, diagram)).run(); } /** * Gets the Filename to save the file as * *@return The Filename value */ private String getFilename() { JFileChooser chooser = new JFileChooser(); // Create the java file filter ExtensionFileFilter filter = new ExtensionFileFilter(); filter.addExtension(".jpg"); filter.setDescription("JPG Image Files (.jpg)"); chooser.setFileFilter(filter); // Set it so that files only can be selected and it is a save box chooser.setFileSelectionMode(JFileChooser.FILES_ONLY); chooser.setDialogType(JFileChooser.SAVE_DIALOG); // Set the directory to the current directory if (SaveAdapter.directory == null) { SaveAdapter.directory = new File(System.getProperty("user.dir")); } chooser.setCurrentDirectory(SaveAdapter.directory); // Get the user's selection int returnVal = chooser.showSaveDialog(null); if (returnVal == JFileChooser.APPROVE_OPTION) { File selectedFile = chooser.getSelectedFile(); SaveAdapter.directory = selectedFile.getParentFile(); return selectedFile.getAbsolutePath(); } return null; } }